# uncompyle6 version 3.2.3
# Python bytecode 3.6 (3379)
# Decompiled from: Python 3.6.8 |Anaconda custom (64-bit)| (default, Feb 21 2019, 18:30:04) [MSC v.1916 64 bit (AMD64)]
# Embedded file name: site-packages\requests\exceptions.py
"""
requests.exceptions
~~~~~~~~~~~~~~~~~~~

This module contains the set of Requests' exceptions.
"""
from urllib3.exceptions import HTTPError as BaseHTTPError


class RequestException(IOError):
    """There was an ambiguous exception that occurred while handling your
    request.
    """

    def __init__(self, *args, **kwargs):
        """Initialize RequestException with `request` and `response` objects."""
        response = kwargs.pop("response", None)
        self.response = response
        self.request = kwargs.pop("request", None)
        if response is not None:
            if not self.request:
                if hasattr(response, "request"):
                    self.request = self.response.request
        super(RequestException, self).__init__(*args, **kwargs)


class HTTPError(RequestException):
    """An HTTP error occurred."""

    pass


class ConnectionError(RequestException):
    """A Connection error occurred."""

    pass


class ProxyError(ConnectionError):
    """A proxy error occurred."""

    pass


class SSLError(ConnectionError):
    """An SSL error occurred."""

    pass


class Timeout(RequestException):
    """The request timed out.
    
    Catching this error will catch both
    :exc:`~requests.exceptions.ConnectTimeout` and
    :exc:`~requests.exceptions.ReadTimeout` errors.
    """

    pass


class ConnectTimeout(ConnectionError, Timeout):
    """The request timed out while trying to connect to the remote server.
    
    Requests that produced this error are safe to retry.
    """

    pass


class ReadTimeout(Timeout):
    """The server did not send any data in the allotted amount of time."""

    pass


class URLRequired(RequestException):
    """A valid URL is required to make a request."""

    pass


class TooManyRedirects(RequestException):
    """Too many redirects."""

    pass


class MissingSchema(RequestException, ValueError):
    """The URL schema (e.g. http or https) is missing."""

    pass


class InvalidSchema(RequestException, ValueError):
    """See defaults.py for valid schemas."""

    pass


class InvalidURL(RequestException, ValueError):
    """The URL provided was somehow invalid."""

    pass


class InvalidHeader(RequestException, ValueError):
    """The header value provided was somehow invalid."""

    pass


class ChunkedEncodingError(RequestException):
    """The server declared chunked encoding but sent an invalid chunk."""

    pass


class ContentDecodingError(RequestException, BaseHTTPError):
    """Failed to decode response content"""

    pass


class StreamConsumedError(RequestException, TypeError):
    """The content for this response was already consumed"""

    pass


class RetryError(RequestException):
    """Custom retries logic failed"""

    pass


class UnrewindableBodyError(RequestException):
    """Requests encountered an error when trying to rewind a body"""

    pass


class RequestsWarning(Warning):
    """Base warning for Requests."""

    pass


class FileModeWarning(RequestsWarning, DeprecationWarning):
    """A file was opened in text mode, but Requests determined its binary length."""

    pass


class RequestsDependencyWarning(RequestsWarning):
    """An imported dependency doesn't match the expected version range."""

    pass
